// pages/appointment-notice/appointment-notice.js
Page({
  data: {
    noticeList: [], // 预约须知列表
    loading: false, // 加载状态
    error: false, // 错误状态
    showDetailModal: false, // 是否显示详情弹窗
    currentNotice: null // 当前查看的须知
  },

  onLoad(options) {
    // 页面加载时获取预约须知数据
    this.loadNoticeData();
  },

  onShow() {
    // 页面显示时刷新数据
    this.loadNoticeData();
  },

  // 加载预约须知数据
  loadNoticeData() {
    this.setData({
      loading: true,
      error: false
    });

    wx.request({
      url: 'http://localhost:8003/appointment-notice/all',
      method: 'GET',
      success: (res) => {
        if (res.data.code === 200) {
          const notices = (res.data.data || []).map(item => {
            const content = item.noticeContent || '';
            return {
              ...item,
              shortContent: content ? (content.length > 50 ? content.substring(0, 50) + '...' : content) : '暂无内容'
            };
          });
          console.log('获取预约须知数据成功:', notices);
          
          this.setData({
            noticeList: notices,
            loading: false
          });
        } else {
          console.error('获取预约须知数据失败:', res.data.msg);
          this.setData({
            error: true,
            loading: false
          });
        }
      },
      fail: (err) => {
        console.error('请求预约须知数据失败:', err);
        this.setData({
          error: true,
          loading: false
        });
        
        // 如果后端不可用，使用默认数据
        this.loadDefaultData();
      }
    });
  },

  // 加载默认数据（当后端不可用时）
  loadDefaultData() {
    const defaultNotices = [
      {
        id: 1,
        noticeTitle: '预约系统介绍',
        noticeContent: '我院门诊部严格执行全面预约挂号制度，非急诊患者实行错峰就诊、错峰报到。患者可凭纸质或电子预约凭证在就诊时间前半小时进入医院，并在该时段内通过自助机报到。',
        noticeType: 'general',
        sortOrder: 1
      },
      {
        id: 2,
        noticeTitle: '疫情防控要求',
        noticeContent: '根据北京市疫情防控要求，如患者体温≥37.3℃，请前往发热门诊筛查。从国内中高风险地区或境外返京人员，需提供7天内核酸检测阴性报告方可入院就诊。如无检测报告，需在就诊前进行核酸检测，避免影响就诊。不符合条件者将无法进入医院区域，请取消或改期预约。',
        noticeType: 'requirement',
        sortOrder: 2
      },
      {
        id: 3,
        noticeTitle: '预约确认和状态查询',
        noticeContent: '成功挂号以惠仁医院成功挂号记录为准。在APP内查看预约状态方法：【我】 - 【挂号记录】 - 【状态:已挂号】',
        noticeType: 'general',
        sortOrder: 3
      },
      {
        id: 4,
        noticeTitle: '预约号源更新时间',
        noticeContent: '预约号源每日16:00更新。',
        noticeType: 'policy',
        sortOrder: 4
      },
      {
        id: 5,
        noticeTitle: '取消政策',
        noticeContent: '成功挂号后48小时内，且在就诊日期前一天12:00前可取消预约。超过就诊日期开始时间不予退费。',
        noticeType: 'policy',
        sortOrder: 5
      },
      {
        id: 6,
        noticeTitle: '挂号后说明',
        noticeContent: '成功挂号后，请仔细阅读电子挂号单上的就诊提示和温馨提醒。',
        noticeType: 'general',
        sortOrder: 6
      }
    ].map(item => ({
      ...item,
      shortContent: item.noticeContent.length > 50 ? item.noticeContent.substring(0, 50) + '...' : item.noticeContent
    }));

    this.setData({
      noticeList: defaultNotices,
      loading: false
    });
  },

  // 查看须知详情
  viewNoticeDetail(e) {
    const notice = e.currentTarget.dataset.notice;
    console.log('查看须知详情:', notice);
    
    this.setData({
      currentNotice: notice,
      showDetailModal: true
    });
  },

  // 关闭详情弹窗
  closeDetailModal() {
    this.setData({
      showDetailModal: false,
      currentNotice: null
    });
  },

  // 阻止事件冒泡
  stopPropagation() {
    // 阻止事件冒泡，防止弹窗内容点击时关闭弹窗
  },

  // 确认按钮点击事件
  onConfirm() {
    wx.showToast({
      title: '已确认',
      icon: 'success'
    });
    
    // 延迟后返回上一页
    setTimeout(() => {
      wx.navigateBack();
    }, 1500);
  },

  // 下拉刷新
  onPullDownRefresh() {
    this.loadNoticeData();
    wx.stopPullDownRefresh();
  },

  // 分享功能
  onShareAppMessage() {
    return {
      title: '预约须知',
      path: '/pages/appointment-notice/appointment-notice'
    };
  }
});
